package com.newshub.admin.mapper;

import com.newshub.admin.entity.RssFeed;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface RssFeedMapper {
    RssFeed selectById(@Param("id") Integer id);
    List<RssFeed> selectByPage(@Param("offset") int offset, @Param("limit") int limit,
                               @Param("name") String name,
                               @Param("status") Integer status,
                               @Param("categoryId") Integer categoryId,
                               @Param("regionId") Integer regionId);
    long countByPage(@Param("name") String name,
                     @Param("status") Integer status,
                     @Param("categoryId") Integer categoryId,
                     @Param("regionId") Integer regionId);

    int insert(RssFeed feed);
    int update(RssFeed feed);
    int softDelete(@Param("id") Integer id);
    int updateStatus(@Param("id") Integer id, @Param("status") Integer status);
    
    /**
     * 批量根据ID查询RSS源
     */
    List<RssFeed> selectByIds(@Param("ids") List<Long> ids);
    
    /**
     * 查询需要抓取的RSS源
     * @param currentTime 当前时间 (HH:mm:ss格式)
     * @return 需要抓取的RSS源列表
     */
    List<RssFeed> findFeedsToFetch(@Param("currentTime") String currentTime);
    
    /**
     * 更新RSS源的抓取日期
     * @param id RSS源ID
     * @param fetchDate 抓取日期
     * @return 影响行数
     */
    int updateLastFetchDate(@Param("id") Integer id, @Param("fetchDate") java.time.LocalDate fetchDate);
}




